﻿/*
 * Created by SharpDevelop.
 * User: CrOnO
 * Date: 03/11/2011
 * Time: 08:58 a.m.
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using Business_Entity;

namespace DAOFactory
{
	/// <summary>
	/// Description of DAOEstadoAtencion.
	/// </summary>
	public class DAOEstadoAtencion
	{
		public DAOEstadoAtencion()
		{
		}
		
		public BEEstadoAtencion getEstadoByDesc(string descripcion){
			SqlCommand cmd = new SqlCommand("VENTAS_OBTENER_ATENCION_L", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
				
			cmd.Parameters.Add("@DESC", SqlDbType.VarChar, 20);
			cmd.Parameters["@DESC"].Value = descripcion;
			
			SqlDataReader amd = cmd.ExecuteReader();
			BEEstadoAtencion estAten = new BEEstadoAtencion();
			
			if (amd.HasRows) 
			{				
				while(amd.Read())
				{
					
					try
					{
						estAten.IdEstado = int.Parse(amd[0].ToString());
						estAten.Descripcion = amd[1].ToString();
						
					}
					catch
					{
						System.Windows.Forms.MessageBox.Show("Error al obtener el objeto atencion","Error");
						amd.Close();
						return null;
					}
				}
				amd.Close();
				
				return estAten;
			}
			else
			{
				amd.Close();				
				return null;
			}
		}
		
		public List<BEEstadoAtencion> completarEstadoAtencion()
		{
			SqlCommand cmd = new SqlCommand("VENTAS_OBTENER_EST_ATENCION_L", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
				
			SqlDataReader amd = cmd.ExecuteReader();
			List<BEEstadoAtencion> lista = new List<BEEstadoAtencion>();
			
			if (amd.HasRows) 
			{
				lista.Add(new BEEstadoAtencion(-1,"<Seleccionar>"));
				
				while(amd.Read())
				{
					BEEstadoAtencion estAten = new BEEstadoAtencion();
					
					try
					{
						estAten.IdEstado = int.Parse(amd[0].ToString());
						estAten.Descripcion = amd[1].ToString();
						lista.Add(estAten);
					}
					catch
					{
						System.Windows.Forms.MessageBox.Show("Error al obtener Tipo de Documento","Error");
						amd.Close();
						return null;
					}
				}
				amd.Close();
				
				return lista;
			}
			else
			{
				amd.Close();				
				return null;
			}
		}
		
		public List<BEEstadoAtencion> obtenerEstadoAtencion()
		{
			try{
				SqlCommand cmd = new SqlCommand("SERVICIOS_BUSCAR_ESTADOATENCION_L", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
					
				SqlDataReader amd = cmd.ExecuteReader();
				List<BEEstadoAtencion> lista = new List<BEEstadoAtencion>();
				
				if (amd.HasRows) 
				{
					lista.Add(new BEEstadoAtencion(-1,"<Seleccionar>"));
					
					while(amd.Read())
					{
						BEEstadoAtencion estAten = new BEEstadoAtencion();
						
						try
						{
							estAten.IdEstado = int.Parse(amd[0].ToString());
							estAten.Descripcion = amd[1].ToString();
							lista.Add(estAten);
						}
						catch
						{
//							System.Windows.Forms.MessageBox.Show("Error al obtener Tipo de Documento","Error");
							amd.Close();
							return null;
						}
					}
					amd.Close();
					
					return lista;
				}
				else
				{
					amd.Close();				
					return null;
				}
			}
			catch
			{
				return null;	
			}
		}
	}
}
